package com.lin.service;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lin.po.User;

import java.lang.reflect.InvocationTargetException;

public interface UserService extends IService<User> {

    /**
     * 动态字段查询入口 --方式一
     * <p>在queriedColumns.properties中设置需要查询的字段, 若不设置默认查询所有</p>
     * @param miniBalance 最低余额条件
     */
    void selectPartialFieldByNameAndBalance(Integer miniBalance)
            throws InvocationTargetException, IllegalAccessException;

    /**
     * 动态字段查询入口 --方式二
     * <p>在queriedColumns.properties中设置需要查询的字段, 若不设置默认查询所有</p>
     * @param miniBalance 最低余额条件
     */
    void queryUsers(Integer miniBalance);

    /**
     * 根据id批量减余额
     */
    void minusBalanceByIds(LambdaQueryWrapper<User> wrapper, Integer balance);
    void minusBalanceByIds(Integer balance);

    /**
     * 根据id批量加余额
     */
    void addBalanceByIds(LambdaQueryWrapper<User> wrapper, Integer balance);
    void addBalanceByIds(Integer balance);
}
